komunikace vlakna s hlavnim threadem

Otázka od: Karel Plechota

7. 6. 2004 10:28

zdravim,

mam aplikaci ktera komunikuje na seriovem portu jednim vlaknem s extermim
zarizenim. rad bych se zeptal jakym zpusobem mam z tohoto vlakna dat vedet main
threadu o tom ze uz ma pripravene data.
zatim to mam resene tak ze pres PostMessage poslu z com-vlakna zpravu na handle
main okna. tim vlastne dojde k tomu ze pri zpracovani zprav v main okne se
zavola metoda navazana na tuto zpravu (rekneme treba WM_DATAREADY).
je to dobry zpusob pouziti nebo bych to mel resit jinak? a jak? napada me treba
udelat v main okne timer a periodicky zjistovat jestli uz jsou pripravene
nejake data.

dekuji

Odpovedá: Lukas Gebauer

7. 6. 2004 10:20

> mam aplikaci ktera komunikuje na seriovem portu jednim vlaknem s
> extermim zarizenim. rad bych se zeptal jakym zpusobem mam z tohoto
> vlakna dat vedet main threadu o tom ze uz ma pripravene data. zatim to
> mam resene tak ze pres PostMessage poslu z com-vlakna zpravu na handle
> main okna. tim vlastne dojde k tomu ze pri zpracovani zprav v main
> okne se zavola metoda navazana na tuto zpravu (rekneme treba
> WM_DATAREADY). je to dobry zpusob pouziti nebo bych to mel resit
> jinak? a jak? napada me treba udelat v main okne timer a periodicky
> zjistovat jestli uz jsou pripravene nejake data.

Podobnou situaci resim tak, ze jednoduse volam pres synchronize
metodu formulare, kde pripravena prectena data zpracuji. Delam to tak
hlavne proto, ze thread s obsluhou seriioveho portu musi tak ci tak
pockat na vysledek zpracovani, aby vedel co ma poslat seriovemu
zarizeni zpet jako odpoved.

Pokud by cekani na vysledek zpracovani nebylo potreba, resil bych to
posilanim messages.


--
Lukas Gebauer.

E-mail: gebauerl@mlp.cz
http://www.ararat.cz/synapse/ - Ararat Synapse - TCP/IP Lib.